package com.ztesoft.book.core.sys.sysuser.service;

import com.github.pagehelper.PageInfo;
import com.ztesoft.book.core.base.base.service.BaseExService;
import com.ztesoft.book.core.sys.sysmenu.qo.LoginMenuTreeNewQO;
import com.ztesoft.book.core.sys.sysuser.dto.SysUserDTO;
import com.ztesoft.book.core.sys.sysuser.qo.SysUserQO;
import com.ztesoft.book.core.sys.sysuser.vo.SysUserPwdVO;
import com.ztesoft.book.core.sys.sysuser.vo.SysUserSafeVO;

import java.util.List;


/**
 * @Description 系统用户
 * @Author YangFan
 * @Date 2021-06-22 17:32
 */
public interface SysUserService extends BaseExService<SysUserDTO, SysUserQO> {


    /**
     * 方法功能描述:
     * < 获取当前登录用户的所有permisission权限集合 >
     *
     * @param userid 【参数 1 注释说明】
     * @return String                        【返回值 注释说明】
     * @author YangFan
     * @date 2021-07-01 18:07
     */
    String getPermissionByUser(String userid);


    /**
     * 方法功能描述:
     * < 获取当前登录用户的菜单，不限层级 >
     *
     * @param userid 参数说明
     * @return List<LoginMenuTreeQO>
     * @author YangFan
     * @date 2021-09-01 15:20
     */
    List<LoginMenuTreeNewQO> getLoginUserMenuByUserNew(String userid);


    /**
     * 修改密码
     *
     * @param sysUserPwdVO
     */
    void updatePwd(SysUserPwdVO sysUserPwdVO);


    /**
     * 方法功能描述:
     * < 加载列表 >
     *
     * @param qo       参数说明
     * @param current  参数说明
     * @param pageSize 参数说明
     * @return PageInfo<SysUserSafeVO>
     * @author YangFan
     * @date 2021-08-06 18:12
     */
    PageInfo<SysUserSafeVO> findPageSafe(SysUserQO qo, final Integer current, final Integer pageSize);

}
